﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
using System.Drawing.Drawing2D;

namespace FeiYang
{
    public delegate bool 来人事件处理_(挂机人物_ 人物, int 人数);
    public class 雷达窗口_
    {
        public static Rectangle 雷达范围 = Rectangle.FromLTRB(1122, 64, 1264, 206);
        private GraphicsPath 有效范围 = new GraphicsPath();

        public 线程_ 来人监控线程 { get; set; }

        public  来人事件处理_ 处理来人事件;
        挂机人物_ 人物 { get; set; }

        public 雷达窗口_(挂机人物_ 人物)
        {
            this.人物 = 人物;
            有效范围.AddEllipse(0, 0, 雷达范围.Width, 雷达范围.Height);
            有效范围.CloseFigure();
            this.来人监控线程 = new 线程_(监控来人, false, "来人监控线程", true);
        }

        public bool 监控来人()
        {
            var 来人 =  监控雷达屏幕();
            if (来人 >= 1) {
                处理来人事件(this.人物, 来人);
            }
            其他_.延迟(其他_.时长_200);
            return true;
        }

        private int 监控雷达屏幕()
        {
            var 数量 = 图像_.屏幕找多点色("FF001E", 雷达范围.X, 雷达范围.Y, 雷达范围.X + 雷达范围.Width, 雷达范围.Y + 雷达范围.Height, 1);
            List<Point> 有效点 = new List<Point>();
            if (数量.Count > 6)
            {
                for (var i = 0; i < 数量.Count; i++)
                {
                    var p = 数量[i];
                    if (有效范围.IsVisible(p)) 有效点.Add(p);
                }
            }
            return 有效点.Count / 8;
        }

    }
}
